export enum MsgType {
  /**发送消息 */
  SNED,
  /**推送消息 */
  PUSH,
}


export enum Protocol {
  /**权限验证 */
  BASE_AUTH,
  /**心跳 */
  BASE_HEART,


  /**注册 */
  GAME_REGISTER,
  /**登录 */
  GAME_LOGIN,
  /**分配进入房间 */
  GAME_MATCH_ROOM,
  /**用户进入房间 */
  GAME_USER_ENTER_ROOM,
  /**用户离开房间 */
  GAME_USER_LEAVE_ROOM,
  /**用户准备 */
  GAME_USER_READY,

  /**---------------推送消息-------------*/

  /**在其他地方登录 */
  PUSH_LOGIN_OTHER,
  /**推送房间用户信息 */
  PUSH_ROOM_USER_UPDATE,
  /**推送用户离开房间 */
  PUSH_ROOM_USER_LEAVE,
  /**推送房间状态 */
  PUSH_ROOM_STATE,
}

/**
 * Protocol 对应请求和返回消息结构体
 */
export const ProtocolMap = new Map<Protocol, { req: string, resp: string }>([
  [Protocol.BASE_AUTH, { req: 'Author', resp: 'Empty' }],
  [Protocol.BASE_HEART, { req: 'Empty', resp: 'Empty' }],
  [Protocol.GAME_REGISTER, { req: 'Login', resp: 'UserBaseInfo' }],
  [Protocol.GAME_LOGIN, { req: 'Login', resp: 'LoginResp' }],
  [Protocol.GAME_MATCH_ROOM, { req: 'Kind', resp: 'Room' }],
  [Protocol.GAME_USER_ENTER_ROOM, { req: 'User', resp: 'Empty' }],
  [Protocol.GAME_USER_LEAVE_ROOM, { req: 'Empty', resp: 'Empty' }],
  [Protocol.GAME_USER_READY, { req: 'Empty', resp: 'Empty' }],
  /**---------------推送消息-------------*/
  [Protocol.PUSH_LOGIN_OTHER, { req: 'Empty', resp: 'Empty' }],
  [Protocol.PUSH_ROOM_USER_UPDATE, { req: 'Empty', resp: 'RoomUserInfos' }],
  [Protocol.PUSH_ROOM_USER_LEAVE, { req: 'Empty', resp: 'User' }],
]);